#include "mainwindow.h"
#include <QMenuBar>     // 菜单栏头文件
#include <QMenu>        // 菜单
#include <QAction>
#include <QDebug>
#include <QToolBar>     //工具栏
#include <QPushButton>
#include <QStatusBar>   // 状态栏
#include <QLabel>       // 标签
#include <QTextEdit>    // 文本编辑区
#include <QDockWidget>  // 浮动窗口

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    /*菜单栏*/
    QMenuBar *mBar = menuBar(); //返回主窗口的菜单栏。如果菜单栏不存在，此函数将创建并返回一个空菜单栏。
    // 添加菜单
    QMenu *pFile = mBar->addMenu("文件");
    // 添加菜单项：新建
    QAction *pnew = pFile->addAction("新建");
    connect(pnew, &QAction::triggered,
            []
            ()
    {
        qDebug() << "新建被按下";
    }
    );
    pFile->addSeparator(); // 添加分割线
    // 添加菜单项：打开
    QAction *popen = pFile->addAction("打开");

    /*工具栏*/
    QToolBar *toolbar = addToolBar("工具栏"); //创建工具栏
    toolbar->addAction(pnew); // 创建新建快捷方式
    QPushButton *b = new QPushButton(this);
    b->setText("按钮");
    //添加小控件
    toolbar->addWidget(b);
    connect(b, &QPushButton::clicked,
            [=]
            ()
            {
                b->setText("按钮1");
            }
            );

    /*状态栏*/
    QStatusBar *pstatus = statusBar();
    QLabel *plabel = new QLabel(this);
    plabel->setText("标签1");
    pstatus->addWidget(plabel); // 从左往右添加
    pstatus->addPermanentWidget(new QLabel("标签2", this)); //从右往左添加

    /*核心控件*/
    QTextEdit *textedit = new QTextEdit(this);
    setCentralWidget(textedit); // 设定文本编辑区

    /*浮动窗口*/
    QDockWidget *dockwidget = new QDockWidget(this);
    addDockWidget(Qt::RightDockWidgetArea, dockwidget);
    dockwidget->setWidget(new QTextEdit(this));

}

MainWindow::~MainWindow()
{
}

